﻿using static RAP.Framework.Libary.DataSource.ServiceUtils;
using RAP.Framework.Libary.Utils;
using System.Collections.Generic;

namespace RAP.Framework.Libary.SqlTaskParser.Parsers
{
	/// <summary>
	/// @await解析器，是否将之后的查询按串行方式执行（@await param1, param2;）
	/// </summary>
	public class AwaitTokenParser : ExpressionTokenParser
	{
		public override void ParseToken( SqlParseContext parseContext )
		{
			parseContext.CurrentParallelTasks.Add( parseContext.CurrentTask );

			//将当前并行任务集合添加到所有任务集合队列中
			parseContext.ParseResult.SqlTasks.Add( parseContext.CurrentParallelTasks );

			//创建一个新的并行任务集合
			parseContext.CurrentParallelTasks = new SqlTaskCollection { Await = true };

			base.ParseToken( parseContext );
		}
	}
}
